package bz.ziro.kanbe.dao;

import java.util.List;
import java.util.logging.Logger;

import org.slim3.datastore.Datastore;

import com.google.appengine.api.datastore.Key;

import bz.ziro.kanbe.meta.TemplateBrowserMeta;
import bz.ziro.kanbe.model.TemplateBrowser;
import bz.ziro.kanbe.util.KeyFactory;

/**
 * テンプレートブラウザDao
 * @author Administrator
 */
public class TemplateBrowserDao extends BaseDao<TemplateBrowser> {

    @SuppressWarnings("unused")
    private static final Logger logger = Logger.getLogger(TemplateBrowserDao.class.getName());

    /**
     * メタデータ
     */
    private static final TemplateBrowserMeta browserMeta = new TemplateBrowserMeta();

    /**
     * ブラウザ検索
     * @param aTemplateKey
     * @param aKey
     * @return
     */
    public static TemplateBrowser find(Long siteKey,Long templateKey, Long aKey) {
        Key tempKey = KeyFactory.createTemplateKey(siteKey,templateKey);
        Key key = KeyFactory.createBrowserKey(tempKey, aKey);
        return Datastore.query(browserMeta)
        		.filter(
        			browserMeta.key.equal(key)
        		).asSingle();
    }
    /**
     * ブラウザ削除
     * @param aTemplateKey
     * @param aKey
     */
    public static void delete(Long siteKey,Long templateKey,Long aKey) {
        Key tempKey = KeyFactory.createTemplateKey(siteKey,templateKey);
        Key key = KeyFactory.createBrowserKey(tempKey,aKey);
        Datastore.delete(key);
    }

    /**
     * 全件取得
     * @param templateKey
     * @return
     */
    public static List<TemplateBrowser> all(Key templateKey) {
        return Datastore.query(browserMeta)
        		.filter(
        			browserMeta.templateKey.equal(templateKey)
        		).asList();
    }

}
